home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / documents / RFC / rfc1383.txt < prev    next >
Text File  |  1994-08-01  |  33KB  |  787 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                         C. Huitema
  8. Request for Comments: 1383                                         INRIA
  9.                                                            December 1992
  10.  
  11.  
  12.                  An Experiment in DNS Based IP Routing
  13.  
  14. Status of this Memo
  15.  
  16.    This memo defines an Experimental Protocol for the Internet
  17.    community.  Discussion and suggestions for improvement are requested.
  18.    Please refer to the current edition of the "IAB Official Protocol
  19.    Standards" for the standardization state and status of this protocol.
  20.    Distribution of this memo is unlimited.
  21.  
  22. Table of Contents
  23.  
  24.    1. Routing, scaling and hierarchies ......................    1
  25.    2. Routing based on MX records ...........................    2
  26.    3. Evaluation of DNS routing .............................    3
  27.    3.1 Loops and relays .....................................    4
  28.    3.2 Performances and scaling .............................    5
  29.    3.3 Tunneling or source routing ..........................    6
  30.    3.4 Choosing a gateway ...................................    6
  31.    3.5 Routing dynamics .....................................    6
  32.    3.6 DNS connectivity .....................................    7
  33.    3.7 On the way back ......................................    8
  34.    3.8 Flirting with policy routing .........................    8
  35.    4. Rationales for deployment .............................    9
  36.    4.1 The good citizens ....................................   10
  37.    4.2 The commercial approach ..............................   10
  38.    5. The experimental development ..........................   11
  39.    5.1 DNS record ...........................................   11
  40.    5.2 Interface with the standard IP router ................   12
  41.    5.3 The DNS query manager ................................   12
  42.    5.4 The real time forwarder ..............................   12
  43.    5.5 Interaction with routing protocols ...................   13
  44.    6. Acknowledgments .......................................   13
  45.    7. Conclusion ............................................   13
  46.    8. References ............................................   14
  47.    9. Security Considerations ...............................   14
  48.    10. Author's Address .....................................   14
  49.  
  50. 1.  Routing, scaling and hierarchies
  51.  
  52.    Several recent studies have outlined the risk of "routing explosion"
  53.    in the current Internet: there are already more than 5000 networks
  54.    announced in the NSFNET routing tables, more than 7000 in the EBONE
  55.  
  56.  
  57.  
  58. Huitema                                                         [Page 1]
  59.  
  60. RFC 1383                  DNS based IP routing             December 1992
  61.  
  62.  
  63.    routing tables.  As these numbers are growing, several problems
  64.    occur:
  65.  
  66.       *    The size of the routing tables grows linearly with the
  67.            number of connected networks; handling this larger tables
  68.            requires more resources in all "intelligent" routers, in
  69.            particular in all "transit" and "external" routers that
  70.            cannot rely on default routes.
  71.  
  72.       *    The volume of information carried by the route exchange
  73.            protocols such as BGP grows with the number of networks,
  74.            using more network resources and making the reaction to
  75.            routing events slower.
  76.  
  77.       *    Explicit administrative decisions have to be exercised by
  78.            all transit networks administrators which want to
  79.            implement "routing policies" for each and every
  80.            additional "multi-homed" network.
  81.  
  82.    The current "textbook" solution to the routing explosion problem is
  83.    to use "hierarchical routing" based on hierarchical addresses. This
  84.    is largely documented in routing protocols such as IDRP, and is one
  85.    of the rationales for deploying the CIDR [3] addressing structure in
  86.    the Internet. This textbook solution, while often perfectly adequate,
  87.    as a number of inconveniences, particularly in the presence of
  88.    "multihomed stubs", e.g., customer networks that are connected to
  89.    more than one service providers.
  90.  
  91.    The current proposal presents a scheme that allows for simple
  92.    routing. It is complementary with the classic "hierarchical routing"
  93.    approach, but provides an easy to implement and low cost solution for
  94.    "multi-homed" domains. The solution is a generalization of the "MX
  95.    record" scheme currently used for mail routing.
  96.  
  97. 2.  Routing based on MX records
  98.  
  99.    The "MX records" are currently used by the mail routing application
  100.    to introduce a level of decoupling between the "domain names" used
  101.    for user registration and the mailbox addresses. They are
  102.    particularly useful for sending mail to "non connected" domains: in
  103.    that case, the MX record points to one or several Internet hosts that
  104.    accept to relay mail towards the target domain.
  105.  
  106.    We propose to generalize this scheme for packet routing.  Suppose a
  107.    routing domain D, containing several networks, subnetwork and hosts,
  108.    and connected to the Internet through a couple of IP gateways. These
  109.    gateways are dual homed: they each have an address within the domain
  110.    D -- say D1 and D2 -- and an address within the Internet -- say I1
  111.  
  112.  
  113.  
  114. Huitema                                                         [Page 2]
  115.  
  116. RFC 1383                  DNS based IP routing             December 1992
  117.  
  118.  
  119.    and I2 --. These gateways also have a particularity: they retain
  120.    information, and don't try to announce to the Internet any
  121.    reachibility information on the networks contained within "D". These
  122.    networks however have been properly registered; a name server
  123.    accessible from the Internet contains the "in-addr.arpa" records that
  124.    enable reverse "address to name" lookup, and also contains the
  125.    network level equivalent of "MX records", say "RX records". Given any
  126.    host address Dx within D, one can get "RX records" pointing to the
  127.    Internet addresses of the gateways, I1 and I2.
  128.  
  129.    A standard Internet router Ix cannot in principle send a packet to
  130.    the address Dx: it does not have any corresponding routing
  131.    information. However, if the said Internet router has been modified
  132.    to exploit our scheme, it will query the DNS with the name build up
  133.    from "Dx" in the "in-addr.arpa" domain, obtain the RX records, and
  134.    forward the packet towards I1 (or I2), using some form of "source
  135.    routing". The gateway I1 (or I2) will receive the packet; its routing
  136.    tables contain information on the domain D and it can relay the
  137.    packet to the host Dx.
  138.  
  139.    At this stage, the readers should be convinced that we have presented
  140.    a scheme that:
  141.  
  142.       *    avoid changes in host IP addresses as topology changes,
  143.            without requiring extra overhead on routing (provided
  144.            that the routing employs some form of hierarchical
  145.            information aggregation/abstraction),
  146.  
  147.       *    allow to support multihomed domains without requiring
  148.            additional overhead on routing and without requiring
  149.            hosts to have explicit knowledge of multiple addresses.
  150.  
  151.    They should also forcingly scratch their head, and mumble that things
  152.    can't be so simple, and that one should perhaps carefully look at the
  153.    details before assuming that the solution really works.
  154.  
  155. 3.  Evaluation of DNS routing
  156.  
  157.    Several questions come to mind immediately when confronted to such
  158.    schemes:
  159.  
  160.        -    Should all relays access the DNS? What about possible
  161.             loops?
  162.  
  163.        -    Will the performances be adequate?
  164.  
  165.        -    How does one choose the best gateway when several are
  166.             announced? What happens if the gateway is overloaded, or
  167.  
  168.  
  169.  
  170. Huitema                                                         [Page 3]
  171.  
  172. RFC 1383                  DNS based IP routing             December 1992
  173.  
  174.  
  175.             unreachable?
  176.  
  177.        -    What if the directory cannot be accessed?
  178.  
  179.        -    How does it work in the reverse direction?
  180.  
  181.        -    Should we use tunnelling or loose source routing?
  182.  
  183.        -    Can we be more general?
  184.  
  185.    There may indeed be more questions, but these ones, at least, have
  186.    been taken into account in the setting of our experiment.
  187.  
  188. 3.1.  Loops and relays
  189.  
  190.    In the introduction to DNS-IP routing, we mentioned that the packets
  191.    would be directed towards the access gateway I1 or I2 by means of
  192.    "source routing" or "tunnelling". This is not, stricto sensu,
  193.    necessary. One could imagine that the packet would simply be routed
  194.    "as if it was directed towards I1 or I2". The next relay would, in
  195.    turn, also access the DNS to get routing information and forward the
  196.    packet.
  197.  
  198.    Such a strategy would have the advantage of leaving the header
  199.    untouched and of letting the transit nodes choose the best routing
  200.    towards the destination, based on their knowledge of the reachability
  201.    status. It would however have two important disadvantages:
  202.  
  203.           -    It would oblige all intermediate relays to access the
  204.                DNS,
  205.  
  206.           -    It would oblige all these relays to exploit consistently
  207.                the DNS information.
  208.  
  209.    Obliging all intermediate gateways to access the DNS is impractical
  210.    in the short term: it would mean that we would have to update each
  211.    and every transit relay before deploying the scheme. It could also
  212.    have an important performance impact: the "working set" of transit
  213.    relays is typical much wider than that of stub gateways, and the
  214.    argument presented previously on the efficiency of caches may not
  215.    apply. This would perhaps remain impractical even in the long term,
  216.    as it the volume of DNS traffic could well become excessive.
  217.  
  218.    The second argument would apply even if the performance problem had
  219.    been solved. Suppose that several RX records are registered for a
  220.    given destination, such as I1 and I2 for Dx in our example, and that
  221.    a "hop by hop routing" strategy is used. There would be a fair risk
  222.    that some relays would choose to route the packet towards I1 and some
  223.  
  224.  
  225.  
  226. Huitema                                                         [Page 4]
  227.  
  228. RFC 1383                  DNS based IP routing             December 1992
  229.  
  230.  
  231.    others towards I2, resulting in inefficient routing and the
  232.    possibility of loops.
  233.  
  234.    In order to ensure coherency, we propose that all routing decisions
  235.    be made at the source, or by one of the first relays near the source.
  236.  
  237. 3.2.  Performances and scaling
  238.  
  239.    The performance impact of using the DNS for acquiring routing
  240.    information is twofold:
  241.  
  242.       *    The initial DNS exchanges required for loading the
  243.            information may induce a response time penalty for the
  244.            users,
  245.  
  246.       *    The extra DNS traffic may contribute to overloading the
  247.            network.
  248.  
  249.    We already have some experience of DNS routing in the Internet for
  250.    the "mail" application. After the introduction of the "MX record",
  251.    the mail routing slowly evolved from a hardwired hierarchy, e.g.,
  252.    send all mail to the addresses in the ".FR" domain to the french
  253.    gateway, towards a decoupling between a name hierarchy used for
  254.    registration and the physical hierarchy used for delivery.
  255.  
  256.    If we consider that the mail application represent about 1/4th of the
  257.    Internet traffic, and that a mail message seldom include more than
  258.    half a dozen packets, we come to the point that DNS access is already
  259.    needed at least once for every 24 packets. The performances are not
  260.    apocalyptic -- or someone would have complained! In fact, if we
  261.    generalize this, we may suppose that a given host has a "working set"
  262.    of IP destinations, and that some caching strategy should be
  263.    sufficient to alleviate the performance effect.
  264.  
  265.    In the scheme that we propose, the DNS is only accessed once, either
  266.    by the source host or by an intelligent router located near the
  267.    source host. The routing decision is only made once, and consistent
  268.    routing is pursued in the Internet until reaching an access router to
  269.    the remote domain.
  270.  
  271.    The volume of DNS traffic through the NSFNET, as collected by MERIT,
  272.    is currently about 9%. When a host wants to establish communication
  273.    with a remote host it usually need to obtain the name - IP address
  274.    mapping. Getting extra information (I1 or I2 in our example) should
  275.    incur in most cases one more DNS lookup at the source. That lookup
  276.    would at most double the volume of DNS traffic.
  277.  
  278.  
  279.  
  280.  
  281.  
  282. Huitema                                                         [Page 5]
  283.  
  284. RFC 1383                  DNS based IP routing             December 1992
  285.  
  286.  
  287. 3.3.  Tunneling or source routing
  288.  
  289.    Source directed routing, as described above, can be implemented
  290.    through one of two techniques: source routing, or a form of
  291.    encapsulation protocol. For the sake of simplicity, we will use
  292.    source routing, as defined in [1]: we don't have to define a
  293.    particular tunnelling protocol, and we don't have to require hosts to
  294.    implement a particular encapsulation protocol.
  295.  
  296. 3.4.  Choosing a gateway
  297.  
  298.    A simplification to the previous problem would be to allow only one
  299.    RX record per destination, thus guaranteeing consistent decisions in
  300.    the network. This would however have a number of draw-backs. A single
  301.    access point would be a single point of failure, and would be
  302.    connected to only one transit network thus keeping the "customer
  303.    locking" effect of hierarchical routing.
  304.  
  305.    We propose that the RX records have a structure parallel to that of
  306.    MX records, i.e., that they carry associated with each gateway
  307.    address a preference identifier. The source host, when making the
  308.    routing decision based on RX records, should do the following:
  309.  
  310.           -    List all possible gateways,
  311.  
  312.           -    Prune all gateways in the list which are known as
  313.                "unreachable" from the local site,
  314.  
  315.           -    If the local host is present in the list with a
  316.                preference index "x", prune all gateways whose preference
  317.                index are larger than "x" or equal to "x".
  318.  
  319.           -    Choose one of the gateway in the list. If the list is
  320.                empty, consider the destination as unreachable.
  321.  
  322.    Indeed, these evaluations should not be repeated for each and every
  323.    packet. The routers should maintain a cache of the most frequently
  324.    used destinations, in order to speed up the processing.
  325.  
  326. 3.5.  Routing dynamics
  327.  
  328.    In theory, one could hope to extract "distance" information from the
  329.    local routing table and combine it with the preference index for
  330.    choosing the "best" gateway. In practice, as shown in the mail
  331.    context, it is extremely difficult to perform this kind of test, and
  332.    one has to rely on more heuristical approaches. The easiest one is to
  333.    always choose a "preferred gateway", i.e., the gateway which has the
  334.    minimal preference index. One could also, alternatively, choose one
  335.  
  336.  
  337.  
  338. Huitema                                                         [Page 6]
  339.  
  340. RFC 1383                  DNS based IP routing             December 1992
  341.  
  342.  
  343.    gateway at random within the list: this would spread the traffic on
  344.    several routes, which is known to introduce better load sharing and
  345.    more redundancy in the network.
  346.  
  347.    As this decision is done only once, the particular algorithm to use
  348.    can be left as a purely local matter. One domain may make this
  349.    decision based purely on the RX record, another based purely on the
  350.    routing information to the gateways listed in the RX record, and yet
  351.    the third one may employ some weighted combinations of both.
  352.  
  353.    Perhaps the most important feature is the ability to cope rapidly
  354.    with network errors, i.e., to detect that one of the route has become
  355.    "unreachable". This is clearly an area where we lack experience, and
  356.    where the experiment will help. One can think of several possible
  357.    solutions, e.g.,:
  358.  
  359.       *    Let intermediate gateways rewrite the loose source route
  360.            in order to replace an unreachable access point by a
  361.            better alternative,
  362.  
  363.       *    Monitor the LSR options in the incoming packets, and use
  364.            the reverse LSR,
  365.  
  366.       *    Monitor the "ICMP Unreachable" messages received from
  367.            intermediate gateways, and react accordingly,
  368.  
  369.       *    Regularly probe the LSR, in order to check that it is
  370.            still useful.
  371.  
  372.    A particularly interesting line would be to combine these
  373.    connectivity checks with the transport control protocol
  374.    acknowledgments; this would however require an important modification
  375.    of the TCP codes, and is not practical in the short term. We will not
  376.    try any such interaction in the early experiments.
  377.  
  378.    The management of these reachability informations should be taken
  379.    into account when caching the results of the DNS queries.
  380.  
  381. 3.6.  DNS connectivity
  382.  
  383.    It should be obvious that a scheme relying on RX records is only
  384.    valid if these records can be accessed. By definition, this is not
  385.    the case of the target domain itself, which is located at the outer
  386.    fringes of the Internet.
  387.  
  388.    A domain that want to obtain connectivity using the RX scheme will
  389.    have to replicate its domain name service info, and in particular the
  390.    RX records, so has to provide them through servers accessible from
  391.  
  392.  
  393.  
  394. Huitema                                                         [Page 7]
  395.  
  396. RFC 1383                  DNS based IP routing             December 1992
  397.  
  398.  
  399.    the core of the Internet. A very obvious way to do so is to locate
  400.    replicated name servers for the target domain in the access gateways
  401.    "I1" and "I2".
  402.  
  403. 3.7.  On the way back
  404.  
  405.    A source located in the fringe domain, when accessing a core Internet
  406.    host, will have to choose an access relay, I1 or I2 in our example.
  407.  
  408.    A first approach to the problem is to let the access gateway relay
  409.    the general routing information provided by the routing domains
  410.    through the fringe network. The fringe hosts would thus have the same
  411.    connectivity as the core hosts, and would not have to use source
  412.    directed routing.  This approach has the advantage of leaving the
  413.    packets untouched, but may pose problems should the transit network
  414.    need to send back a ICMP packet: it will have to specify a source
  415.    route through the access gateway for the ICMP packet. This would be
  416.    guaranteed if the IP packets are source routed, as the reverse source
  417.    route would be automatically used for the ICMP packet. We are thus
  418.    led to recommend that all IP packets leaving a fringe domain be
  419.    explicitly source routed.
  420.  
  421.    The source route could be inserted by the access gateway when the
  422.    packet exits the fringe domain, if the gateway has been made aware of
  423.    our scheme. It can also be set by the source host, which would then
  424.    have to explicitly choose the transit gateway, or by the first router
  425.    in the path, usually the default router of the host sending the
  426.    packets. As we expect that hosts will be easier to modify than
  427.    routers, we will develop here suitable algorithms.
  428.  
  429.    The fringe hosts will have to know the set of available gateways, of
  430.    which all temporarily unreachable gateways shall indeed be pruned. In
  431.    the absence of more information, the gateway will be chosen according
  432.    to some preference order, or possibly at random.
  433.  
  434.    It is very clear that if a "fringe" host wants to communicate with
  435.    another "fringe" host, it will have to insert two relays in the LSR,
  436.    one for the domain that sources the packet, and one for the domain
  437.    where the destination resides.
  438.  
  439. 3.8.  Flirting with policy routing
  440.  
  441.    The current memo assumes that all gateways to a fringe domain are
  442.    equivalent: the objective of the experiment is to test and evaluate a
  443.    simple form of directory base routing, not to provide a particular
  444.    "policy routing" solution. It should be pointed out, however, that
  445.    some form of policy routing could be implemented as a simple
  446.    extension to our RX scheme.
  447.  
  448.  
  449.  
  450. Huitema                                                         [Page 8]
  451.  
  452. RFC 1383                  DNS based IP routing             December 1992
  453.  
  454.  
  455.    In the proposed scheme, RX records are only qualified by an "order of
  456.    preference".  It would not be very difficult to also qualify them
  457.    with a "supported policy" indication, e.g., the numeric identifier of
  458.    a particular "policy". The impact on the choice of gateways will be
  459.    obvious:
  460.  
  461.       -    When going towards a fringe network, one should prune
  462.            from the usable list all the gateways that do not support
  463.            at least one of the local policies,
  464.  
  465.       -    When exiting a fringe network, one should try to assess
  466.            the policies supported by the target, and pick a
  467.            corresponding exit gateway,
  468.  
  469.       -    When going from a fringe network towards another fringe
  470.            network, one should pick a pair of exit and access
  471.            gateway that have matching policies.
  472.  
  473.    In fact, a similar but more general approach has been proposed by
  474.    Dave Clark under the title of "route fragments". The only problem
  475.    here are that we don't know how to identify policies, that we don't
  476.    know whether a simple numeric identifier is good enough and that we
  477.    probably need to provide a way for end users to assess the policy on
  478.    a packet per packet or flow per flow basis. In short, we should try
  479.    to keep the initial experiment simple. If it is shown to be
  480.    successful, we will have to let it evolve towards some standard
  481.    service; it will be reasonable to provide policy hooks at this stage.
  482.  
  483. 4.  Rationales for deployment
  484.  
  485.    Readers should be convinced, after the previous section, that the
  486.    DNS-IP routing scheme is sleek and safe. However, they also are
  487.    probably convinced that a network which is only connected through our
  488.    scheme will probably enjoy somewhat less services than if they add
  489.    have full traditional connectivity.  We can see two major reasons for
  490.    inducing users into this kind of scheme:
  491.  
  492.       -    Because they are good network citizen and want to suffer
  493.            their share in order to ease the general burden of the
  494.            Internet,
  495.  
  496.       -    Because they are financially induced to do so.
  497.  
  498.    We will examine these two rationales separately.
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506. Huitema                                                         [Page 9]
  507.  
  508. RFC 1383                  DNS based IP routing             December 1992
  509.  
  510.  
  511. 4.1.  The good citizens
  512.  
  513.    A strong tradition of the Internet is the display of cooperative
  514.    spirit: individual users are ready to suffer a bit and "do the right
  515.    thing" if this conduct can be demonstrated to improve the global
  516.    state of the network -- and also is not overly painful.
  517.  
  518.    Restraining to record your internal networks in the international
  519.    connectivity tables is mainly an advantage for your Internet
  520.    partners, and in particular for the backbone managers. The normal way
  521.    to relieve this burden is to follow a hierarchical addressing plan,
  522.    as suggested by CIDR. However, when for some reason the plan cannot
  523.    be followed, e.g., when the topology just changed while the target
  524.    hosts have not yet been renumbered, our scheme provides an
  525.    alternative to "just announcing one more network number in the
  526.    tables". Thus, it can help reducing the routing explosion problem.
  527.  
  528. 4.2.  The commercial approach
  529.  
  530.    Announcing network numbers in connectivity tables does have a
  531.    significant cost for network operators:
  532.  
  533.       -    larger routing tables means more memory hence more
  534.            expensive routres,
  535.  
  536.       -    more networks means larger and more frequent routing
  537.            messages, hence consume more network resources,
  538.  
  539.       -    more remote networks means more frequent administrative
  540.            decisions if policies have to be implemented.
  541.  
  542.    These costs are very significant not only for regionals, but also for
  543.    backbone networks. It would thus be very reasonable, from an
  544.    economical point of view, for a backbone to charge regionals
  545.    according to the number of networks that they announce. A similar
  546.    line of reasoning can be applied by the regionals, which could thus
  547.    give the choice to their customers between:
  548.  
  549.       -    being charged for announcing an address of their choice,
  550.  
  551.       -    or being allocated at a lower cost a set of addresses in
  552.            an addressing space belonging to the regional.
  553.  
  554.    Our scheme may prove an interesting tool if the charge for individual
  555.    addresses, which are necessary for "multi homed" clients, becomes too
  556.    high.
  557.  
  558.  
  559.  
  560.  
  561.  
  562. Huitema                                                        [Page 10]
  563.  
  564. RFC 1383                  DNS based IP routing             December 1992
  565.  
  566.  
  567. 5.  The experimental development
  568.  
  569.    The experimental software, implemented under BSD Unix in a "socket"
  570.    environment, contains two tasks:
  571.  
  572.           -    a real time forwarder, which is implemented inside the
  573.                kernel and handles the source demanded routes,
  574.  
  575.           -    a DNS query manager, which transmit to the real time
  576.                forwarder the source routing information.
  577.  
  578.    In this section, we will describe the real time forwarder, the query
  579.    manager, the format of the DNS record, and the interface with the
  580.    standard IP routers.
  581.  
  582. 5.1.  DNS record
  583.  
  584.    In a definitive scheme, it would be necessary to define a DNS record
  585.    type and the corresponding "RX" format. In order to deploy this
  586.    scheme, we would then have to teach this new format to the domain
  587.    name service software. While not very difficult to do, this would
  588.    probably take a couple of month, and will not be used in the early
  589.    experimentations, which will use the general purpose "TXT" record.
  590.  
  591.    This record is designed for easy general purpose extensions in the
  592.    DNS, and its content is a text string. The RX record will contain
  593.    three fields:
  594.  
  595.           -    A record identifier composed of the two characters "RX".
  596.                This is used to disambiguate from other experimental uses
  597.                of the "TXT" record.
  598.  
  599.           -    A cost indicator, encoded on up to 3 numerical digits.
  600.                The corresponding positive integer value should be less
  601.                that 256, in order to preserve future evolutions.
  602.  
  603.           -    An IP address, encoded as a text string following the
  604.                "dot" notation.
  605.  
  606.    The three strings will be separated by a single comma. An example of
  607.    record would thus be:
  608.  
  609.  ___________________________________________________________________
  610.  |         domain          |   type |   record |   value           |
  611.  |            -            |        |          |                   |
  612.  |*.27.32.192.in-addr.arpa |   IP   |    TXT   |   RX, 10, 10.0.0.7|
  613.  |_________________________|________|__________|___________________|
  614.  
  615.  
  616.  
  617.  
  618. Huitema                                                        [Page 11]
  619.  
  620. RFC 1383                  DNS based IP routing             December 1992
  621.  
  622.  
  623.    which means that for all hosts whose IP address starts by the three
  624.    octets "192.32.27" the IP host "10.0.0.7" can be used as a gateway,
  625.    and that the preference value is 10.
  626.  
  627. 5.2.  Interface with the standard IP router
  628.  
  629.    We have implemented our real time forwarder "on the side" of a
  630.    standard IP router, as if it were a particular subnetwork connection:
  631.    we simply indicate to the IP router that some destinations should be
  632.    forwarded to a particular "interface", i.e., through our real time
  633.    forwarder.
  634.  
  635.    Of particular importance is indeed to know efficiently which
  636.    destinations should be routed through our services. As the service
  637.    would be useless for destinations which are directly reachable, we
  638.    have to monitor the "unreachable" destinations.  We do so by
  639.    monitoring the "ICMP" messages which signal the unreachable
  640.    destination networks, and copying them to the DNS query manager.
  641.  
  642.    There are indeed situations, e.g., for fringe networks, where the
  643.    router knows that destinations outside the local domain will have to
  644.    be routed through the real time forwarder. In this case, it makes
  645.    sense to declare the real time forwarder as the "default route" for
  646.    the host.
  647.  
  648. 5.3.  The DNS query manager
  649.  
  650.    Upon reception of the ICMP message, the query manager updates the
  651.    local routing table, so that any new packet bound to the requested
  652.    destination becomes routed through the real time forwarder.
  653.  
  654.    At the same time, the query manager will send a DNS request, in order
  655.    to read the RX records corresponding to the destination. After
  656.    reception of the response, it will select a gateway, and pass the
  657.    information to the real time forwarder.
  658.  
  659. 5.4.  The real time forwarder
  660.  
  661.    When the real time forwarder receives a packet, it will check whether
  662.    a gateway is known for the corresponding destination.  If that is the
  663.    case, it will look at the packet, and insert the necessary source
  664.    routing information; it will then forward the packet, either by
  665.    resending it through the general IP routing program, or by forwarding
  666.    it directly to the network interface associated to the intermediate
  667.    gateway.
  668.  
  669.    If the gateway is not yet known, the packet will be placed in a
  670.    waiting queue. Each time the query manager will transmit to the real
  671.  
  672.  
  673.  
  674. Huitema                                                        [Page 12]
  675.  
  676. RFC 1383                  DNS based IP routing             December 1992
  677.  
  678.  
  679.    time forwarder new gateway information, the queue will be processed,
  680.    and packets for which the information has become available will be
  681.    forwarded. Packets in this waiting queue will "age"; their time to
  682.    live counts will be decremented at regular intervals. If it become
  683.    null, the packets will be destroyed; an ICMP message may be
  684.    forwarded.
  685.  
  686.    The DNS query manager may be in some cases unable to find RX
  687.    information for a particular destination. It will in that case signal
  688.    to the real time forwarder that the destination is unreachable. The
  689.    information will be kept in the destination table; queued packet for
  690.    this destination will be destroyed, and new packets will not be
  691.    forwarded.
  692.  
  693.    The information in the destination table will not be permanent. A
  694.    time to live will be associated to each line of the table, and the
  695.    aging lines will be periodically removed.
  696.  
  697. 5.5.  Interaction with routing protocols
  698.  
  699.    The monitoring of the "destination unreachable" packets described
  700.    above is mostly justified by a desire to leave standard IP routing,
  701.    and the corresponding kernel code, untouched.
  702.  
  703.       If the IP routing code can be modified, and if the local host has
  704.       full routing tables, it can take the decision to transmit the
  705.       packets to the real time forwarder more efficiently, e.g., as a
  706.       default action for the networks that are not announced in the
  707.       local tables. This procedure is better practice, as it avoids the
  708.       risk of loosing the first packet that would otherwise have
  709.       triggered the ICMP message.
  710.  
  711. 6.  Acknowledgments
  712.  
  713.    We would like to thank Yakov Rekhter, which contributed a number of
  714.    very helpful comments.
  715.  
  716. 7.  Conclusion
  717.  
  718.    This memo suggests an experiment in directory based routing.  The
  719.    author believes that this technique can be deployed in the current
  720.    Internet infrastructure, and may help us to "buy time" before the
  721.    probably painful migration towards IPv7.
  722.  
  723.    The corresponding code is under development at INRIA. It will be
  724.    placed in the public domain. Interested parties are kindly asked to
  725.    contact us for more details.
  726.  
  727.  
  728.  
  729.  
  730. Huitema                                                        [Page 13]
  731.  
  732. RFC 1383                  DNS based IP routing             December 1992
  733.  
  734.  
  735. 8.  References
  736.  
  737.    [1] Postel, J., "Internet Protocol - DARPA Internet Program Protocol
  738.        Specification", STD 5, RFC 791, DARPA, September 1981.
  739.  
  740.    [2] Clark, D., "Building routers for the routing of tomorrow",
  741.        Message to the "big-internet" mailing list, reference
  742.        <9207141905.AA06992@ginger.lcs.mit.edu>, Tue, 14 Jul 92.
  743.  
  744.    [3] Fuller, V., Li, T., Yu, J., and K. Varadhan, "Supernetting:  an
  745.        Address Assignment and Aggregation Strategy", RFC 1338, BARRNet,
  746.        cisco, Merit, OARnet, June 1992.
  747.  
  748. 9.  Security Considerations
  749.  
  750.    Security issues are not discussed in this memo.
  751.  
  752. 10.  Author's Address
  753.  
  754.    Christian Huitema
  755.    INRIA, Sophia-Antipolis
  756.    2004 Route des Lucioles
  757.    BP 109
  758.    F-06561 Valbonne Cedex
  759.    France
  760.  
  761.    Phone: +33 93 65 77 15
  762.    EMail: Christian.Huitema@MIRSA.INRIA.FR
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786. Huitema                                                        [Page 14]
  787.